"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/10/30 9:37
@Description :  面向对象的继承

继承： 子类继承父类   将子类中共同拥有的属性或方法 提取到父类中  子类中可以不在定义 直接继承父类中的属性和方法即可


"""
from abc import ABC, abstractmethod


# 程序员  抽象类
class Programmers(ABC):
    name = None
    age = None

    # 编写代码   抽象方法
    @abstractmethod
    def write_code(self):
        pass
        # print(f'我是{self.name}是一个初级程序员,可以编写一些简单的python代码,年龄{self.age}岁')


# 初级程序员
class JuniorProgrammers(Programmers):
    __salary = None

    def set_salary(self, salary):
        self.__salary = salary

    # 编写代码
    def write_code(self):
        print(f'我是{self.name}是一个初级程序员,可以编写一些简单的python代码,年龄{self.age}岁,salary = {self.__salary}')


#  创建对象
programmer1 = JuniorProgrammers()
# 初始化
programmer1.name = 'zhangsan'
programmer1.age = 20
# 访问
programmer1.set_salary(5000)
programmer1.write_code()


# 高级程序员
class SeniorProgrammer(Programmers):
    __salary = None

    def set_salary(self, salary):
        self.__salary = salary

    # 编写代码

    def write_code(self):
        print(f'我是{self.name}是一个高级程序员,可以编写一些复杂的python代码,年龄{self.age}岁,salary = {self.__salary}')



#  创建对象
programmer2 = SeniorProgrammer()
# 初始化
programmer2.name = 'zhangsan'
programmer2.age = 20
# 访问
programmer2.set_salary(9000)
programmer2.write_code()
